/*
 * @Descripttion:
 * @version: 1.0.0
 * @Author: htang
 * @Date: 2023-12-08 15:48:10
 * @LastEditors: htang
 * @LastEditTime: 2023-12-08 16:45:40
 */
import { defHttp } from '/@/utils/http/axios';
import { createVNode } from 'vue';
import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
import { Modal, message } from 'ant-design-vue';

const API = {
  // 项目列表分页
  page: '/project/page',
  // 项目列表
  list: '/project/list',
  // 项目删除
  delete: '/project/delete',
  // 项目详情
  info: '/project/info',
  // 新增项目信息
  add: '/project/add',
  // 修改项目信息
  modify: '/project/modify'
}

/**
 * 获取项目分页列表
 * @param {int} current 当前页
 * @param {int} size 当前页总数
 * @returns
 */
export const projectPageApi = async (params) => {
  return await defHttp.get({ url: API.page, params });
}

/**
 * 根据ID获取项目详情
 * @returns
 */
export const projectInfoApi = async (params) => {
  return await defHttp.get({ url: API.info, params });
}

/**
 * 获取项目列表
 * @returns
 */
export const projectListApi = async (params) => {
  return await defHttp.get({ url: API.list, params });
}

/**
 * 站点编辑 文档地址 {@link http://192.168.1.86:38080/api/doc.html#/default/%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86/addUsingPOST_3}
 * @param {String} owner 甲方单位
 * @param {String} projectBudget 项目金额
 * @param {String} projectCode 项目编码
 * @param {String} projectEndTime 项目结束时间
 * @param {String} projectImplementOwner 项目实施负责人
 * @param {String} projectName 项目名称
 * @param {String} projectStartTime 项目开始时间
 * @param {String} projectTechOwner 研发负责人
 * @param {String} projectTime 项目建立时间
 * @returns
 */
export const projectAddApi = async (data) => {
  return new Promise((resolve, reject) => {
    Modal.confirm({
      title: '提示',
      icon: createVNode(ExclamationCircleOutlined),
      content: '确定提交当前数据?',
      centered: true,
      async onOk() {
        await defHttp.post({ url: API.add, data }).then((res) => {
          resolve(res);
        })
      }, onCancel() {
        message.warning('已取消');
        resolve('')
      },
    });
  })
}

/**
 * 站点编辑 文档地址 {@link http://192.168.1.86:38080/api/doc.html#/default/%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86/addUsingPOST_3}
 * @param {String} owner 甲方单位
 * @param {String} projectBudget 项目金额
 * @param {String} projectCode 项目编码
 * @param {String} projectEndTime 项目结束时间
 * @param {String} projectImplementOwner 项目实施负责人
 * @param {String} projectName 项目名称
 * @param {String} projectStartTime 项目开始时间
 * @param {String} projectTechOwner 研发负责人
 * @param {String} projectTime 项目建立时间
 * @returns
 */
export const projectModifyApi = async (data) => {
  return new Promise((resolve, reject) => {
    Modal.confirm({
      title: '提示',
      icon: createVNode(ExclamationCircleOutlined),
      content: '确定提交当前数据?',
      centered: true,
      async onOk() {
        await defHttp.post({ url: API.modify, data }).then((res) => {
          resolve(res);
        })
      }, onCancel() {
        message.warning('已取消');
        resolve('')
      },
    });
  })
}

/**
 * 删除站点接口
 * @param {*} id
 * @returns
 */
export const projectDeleteApi = (data) => {
  return new Promise((resolve, reject) => {
    Modal.confirm({
      title: '提示',
      icon: createVNode(ExclamationCircleOutlined),
      content: '确定删除当前项目数据?',
      centered: true,
      onOk() {
        resolve(defHttp.post({ url: API.delete, data }))
      }, onCancel() {
        message.warning('已取消');
        reject();
      },
    });
  })
}